
#include "Quat.h"
#include "ParamLine.h"
#include "Plane.h"
#include "Matrix.h"

void main()
{
	CMatrix33	m33;

	m33.Set(2,2,10);

	float init[3] = {2.2, 3.3, 4.4};

	CVector3d	v1(init), v2(init), v3(init);

	v1 += v2;

	v3  = v1 + v2;
}

//void main()
//{
//	printf("\n2D Parametric Line Intersector\n");
//
//	//POINT2D p1, p2, p3, p4;  // our endpoints
//	//PARMLINE2D pl1, pl2; // our line
//
//	CPoint2d p1, p2, p3, p4;
//	CParamLine2d p11, p12;
//
//	float f1, f2, f3, f4;
//
//	while(1) 
//	{
//
//		printf("\nEnter coords parametric line from p1 to p2 in form: x1,y1, x2,y2?");
//		scanf("%f, %f, %f, %f",f1, f2, f3, f4);
//
//		p1.SetX(f1);
//		p1.SetY(f2);
//		p2.SetX(f3);
//		p2.SetY(f4);
//
//		printf("\nEnter coords parametric line from p3 to p4 in form: x3,y3, x4,y4?");
//		scanf("%f, %f, %f, %f",f1, f2, f3, f4);
//
//		p3.SetX(f1);
//		p3.SetY(f2);
//		p4.SetX(f3);
//		p4.SetY(f4);
//
//		// create a parametric line from p1 to p2
//		p11.Init(p1, p2);
//		//Init_Parm_Line2D(&p1, &p2, &pl1);
//
//		// create a parametric line from p3 to p4
//		p12.Init(p3, p4);
//
//		float t1=0, t2=0; // storage for parameters
//
//		// compute intersection
//		int intersection_type = p11.Intersect(p12, &t1, &t2);
//
//		// based on type of intersection display results
//		switch(intersection_type)
//		{
//		case PARM_LINE_NO_INTERSECT:
//			{
//				printf("\nThe lines do not intersect!");
//			} break;
//
//		case PARM_LINE_INTERSECT_IN_SEGMENT:
//			{
//				CPoint2d pt;
//				p11.Compute_Parm_Line(t1, &pt);
//				printf("\nThe lines intersect when t1=%f, t2=%f at (%f, %f)",t1, t2, pt[X], pt[Y]);
//			} break;
//
//		case PARM_LINE_INTERSECT_OUT_SEGMENT:
//			{
//				CPoint2d pt;
//				p11.Compute_Parm_Line(t1, &pt);
//				printf("\nThe lines intersect when t1=%f, t2=%f at (%f, %f)",t1, t2, pt[X], pt[Y]);
//				printf("\nNote that the intersection occurs out of range of the line segment(s)");
//			} break;
//
//		default: break;
//
//		} // end switch
//
//
//	} // end while
//
//
//} // end main

//void main()
//{
//	CVector3d	plane_n;
//	CPoint3d	plane_p;
//
//	CPlane3d	plane;
//
//	//VECTOR3D plane_n; // plane normal
//	//POINT3D  plane_p; // point on plane
//	//PLANE3D plane;    // the plane
//
//	printf("\n3D Plane Half-Space Tester\n");
//
//	float f1,f2,f3;
//	// get the normal to the plane
//	printf("\nEnter normal to plane: nx, ny, nz?");
//	scanf("%f, %f, %f", &f1, &f2, &f3);
//	
//	plane_n.SetX(f1);
//	plane_n.SetY(f2);
//	plane_n.SetZ(f3);
//
//	// get a point on the plane
//	printf("\nEnter a point on the plane: x,y,z?");
//	scanf("%f, %f, %f", &f1, &f2, &f3);
//	
//	plane_p.SetX(f1);
//	plane_p.SetY(f2);
//	plane_p.SetZ(f3);
//
//	// create the plane from the point and normal
//	plane.Init(plane_p, plane_n);
//
//	// test point
//	CPoint3d	p_test;
//
//	while(1) 
//	{
//		printf("\nEnter a point to test for which half-space: x,y,z?");
//		scanf("%f, %f, %f", &f1, &f2, &f3);
//		
//		p_test.SetX(f1);
//		p_test.SetY(f2);
//		p_test.SetZ(f3);
//
//		// test the point
//		float hs = plane.Compute_Point(p_test);
//
//		if (hs > 0.0)
//			printf("\nhalf space = %f, thus, point is on positive half-space",hs);
//		else
//			if (hs < 0.0)
//				printf("\nhalf space = %f, thus, point is on negative half-space",hs);
//			else
//				if (hs==0.0)
//					printf("\nhalf space = %f, thus, point is in plane",hs);
//
//	} // end while
//
//
//} // end main
